package org.liushengpei.com.domain.esdomain;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 索引库商品详细信息实体类
 */
@Data
@Document(indexName = "goodsinfo")
public class GoodsInfoIndex implements Serializable {

    /**
     * 主键id
     */
    @Id
    private Long id;

    /**
     * 所属店铺id
     */
    @Field(type = FieldType.Keyword)
    private String shopId;

    /**
     * 商品编码
     */
    @Field(type = FieldType.Keyword)
    private String code;

    /**
     * 商品名称
     */
    @Field(type = FieldType.Text, analyzer = "ik_max_word", copyTo = "searchAll")
    private String name;

    /**
     * 商品列表展示的图片
     */
    @Field(type = FieldType.Keyword, index = false)
    private String showImg;

    /**
     * 商品介绍
     */
    @Field(type = FieldType.Text, index = false)
    private String info;

    /**
     * 发货地址
     */
    @Field(type = FieldType.Text, index = false)
    private String comeAddress;

    /**
     * 当前价格
     */
    @Field(type = FieldType.Double)
    private BigDecimal currentPrice;

    /**
     * 原价
     */
    @Field(type = FieldType.Double)
    private BigDecimal originalPrice;

    /**
     * 已售数量
     */
    @Field(type = FieldType.Integer)
    private Integer alreadyBuy;

    /**
     * 库存
     */
    @Field(type = FieldType.Integer)
    private Integer inventory;

    /**
     * 商品分类
     */
    @Field(type = FieldType.Keyword, copyTo = "searchAll")
    private String type;

    /**
     * 品牌
     */
    @Field(type = FieldType.Keyword, copyTo = "searchAll")
    private String brand;

    /**
     * 状态（0：下架，1：上架，2：售罄）
     */
    @Field(type = FieldType.Integer)
    private Integer status;

    /**
     * 浏览量
     */
    @Field(type = FieldType.Integer)
    private Integer browseNum;

    /**
     * 创建人
     */
    @Field(type = FieldType.Keyword, index = false)
    private String createUser;

    /**
     * 创建时间
     */
    @Field(type = FieldType.Date, index = false)
    private Date createTime;

    /**
     * 更新人
     */
    @Field(type = FieldType.Keyword, index = false)
    private String updateUser;

    /**
     * 更新时间
     */
    @Field(type = FieldType.Date, index = false)
    private Date updateTime;

    /**
     * 删除标识
     */
    @Field(type = FieldType.Integer, index = false)
    private Integer delFlag;

    /**
     * 搜索全部字段
     */
    @Field(type = FieldType.Keyword)
    private String searchAll;
}
